package com.sg.dto.biz.calc.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc ImplementAnalysisProgressValueDownClacCloneComReqDto
 * @使用场景
 */
@Data
public class ImplementAnalysisProgressValueDownClacCloneComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 进度值计算公式 MANUAL_REPORT:人工填报进度值 CLONE_EVA_OBJECT:其他树进度值克隆主树 OKR_PERSONAL_CLONE_EVA_OBJECT_PROGRESS:OKR个人树进度值克隆主树（+KR） STANDARD_OBJECT_CLONE_EVA_OBJECT_PROGRESS:OKR部门树标准O进度值克隆主树（+KR） CUSTOM_OBJECT_CLONE_PERSONAL_PROGRESS:OKR部门树自定义O进度值克隆个人树（+KR） RIGHTWARD_CALCULATION:向左取最近可循环周期最新 DOWNWARD_CALCULATION_NOKR:主树向下计算参照值不赋值（只有O） DOWNWARD_CALCULATION_NOKR_COPY:主树向下计算参照值并赋值（只有O） DOWNWARD_CALCULATION_KR:主树向下计算参照值不赋值（O加KR） DOWNWARD_CALCULATION_KR_COPY:主树向下计算参照值并赋值（O加KR） DOWNWARD_CALCULATION_ONLY_KR:主树向下计算参照值并赋值（KR） DOWNWARD_CALCULATION_PROGRESS:其他树非末级只向下计算进度值
     */
    @NotNull(message = "进度值计算公式不能为空")
    @ApiModelProperty("进度值计算公式")
    private String progressValueCalcFormula;

    /**
     * 小数点规则
     */
    @NotNull(message = "小数点规则不能为空")
    @ApiModelProperty("小数点规则")
    private Long decimalPointRules;

    /**
     * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
     */
    @NotNull(message = "小数最后一位规则不能为空")
    @ApiModelProperty("小数最后一位规则")
    private String decimalDigitsLastRules;

    /**
     * 冗余开启OKR场景
     */
    @ApiModelProperty("冗余开启OKR场景")
    private String isOkrPlanScene;

    /**
     * OKR目标属性 OBJECTIVES:目标O KEY_RESULTS:关键成果KR
     */
    @ApiModelProperty("OKR目标属性")
    private String indicatorKind;

    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("冗余指标业务类型")
    private String targetValueType;

    /**
     * 通用数值字段1（小数型）
     */
    @ApiModelProperty("下级O进度值")
    private Double comFloatField1;

    /**
     * 参照进度值值_下级O权重
     */
    @ApiModelProperty("参照进度值值_下级O权重")
    private Double countProObWeight;

    /**
     * 通用数值字段2（小数型）
     */
    @ApiModelProperty("下级KR进度值")
    private Double comFloatField2;

    /**
     * 参照进度值值_下级KR权重
     */
    @ApiModelProperty("参照进度值值_下级KR权重")
    private Double countProKrWeight;

}
